/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2025-03-22
 * Time: 15:54
 */
public class Main {
    public static void main(String[] args) {
        // 场景7：构造方法调用
        Parent parent = new Child(); //对象创建,向上转型
        // 输出：
        // Parent构造方法
        // Child构造方法

        // 场景1：成员变量访问（静态绑定）
        System.out.println("成员变量: " + parent.name); // 输出:成员变量: Parent

        // 场景2：静态方法调用（静态绑定）
        parent.staticMethod(); // 输出:Parent的静态方法

        // 场景3：final方法调用（静态绑定）
        parent.finalMethod(); // 输出:Parent的final方法

        // 场景4/5：private方法调用（静态绑定）
        parent.callPrivate(); // 输出:Parent的private方法

        // 场景6：方法重载（静态绑定）
        parent.overloadMethod(18);    // 调用 Parent.overloadMethod(int)
        parent.overloadMethod("liming");// 调用 Parent.overloadMethod(String)
        // parent.overloadMethod(3.14); // ❌ 编译错误：Parent没有定义double参数的重载

        // 子类对象单独测试
        Child child = new Child();
        child.overloadMethod(3.14); // 调用 Child.overloadMethod(double)
    }
}
/*

运行：
        Parent构造方法
        Child构造方法
        成员变量: Parent
        Parent的静态方法
        Parent的final方法
        Parent的private方法
        Parent重载方法: int -> 18
        Parent重载方法: String -> liming
        Parent构造方法
        Child构造方法
        Child新增重载方法: double -> 3.14*/
